1. Field of the Invention
The present invention relates to communications systems and, more particularly, to methods and systems for determining the location of mobile stations, such as cellular telephones, personal data assistants (PDAs), or notebook computers for instance.
2. Description of Related Art
Mobile stations that enable voice and data communications over an air interface are now commonplace. In a typical arrangement, a mobile station communicates via an air interface with a radio access system, which provides connectivity with a larger communications network such as the public switched telephone network (PSTN), an intranet or the Internet for instance. The radio access system may typically include a base transceiver station (BTS) (having an antenna that provides a radiation pattern defining the air interface), which is coupled or integrated with a base station controller (BSC). The BSC may then be coupled or integrated with a switch (e.g., a mobile switching center (MSC)) or gateway (e.g., a wireless access gateway) that connects with the communications network. With this arrangement, a user of the mobile station may thereby engage in a communication via the air interface and radio access system with an entity on the communications network.
To initiate a conventional voice call, for instance, a user may direct the mobile station to send dialed digits over the air interface. An MSC may then receive the dialed digits, determine where to route the call, and, through industry standard signaling mechanisms, seek to set up a voice call path or session via the communications network with a destination corresponding to the dialed digits. Once the destination answers, the MSC may then connect the call with the mobile station, and voice communication may commence.
Similarly, to engage in an exemplary data communication session, a user of the mobile station may direct the mobile station to send data via the air interface and radio access system to a data server (e.g., web server) on the Internet or other data network, and the data server may send data via the radio access system and air interface to the mobile station.
To facilitate such data communications, many mobile stations are now equipped (e.g., programmed) with a microbrowser application, which enables a user to engage in a scaled down version of the same sort of web browsing that is conventionally conducted from a desktop personal computer. In practice, the user typically interacts with the microbrowser through a display screen and keypad on the mobile station. The microbrowser exchanges instructions with a server to perform functions requested by the user, and it may also interpret instructions received by the server that describe the layout and content of the microbrowser screen or that request the microbrowser to query the user for information.
Typically, the microbrowser communicates with the server in accordance with a standard protocol, such as the Wireless Application Protocol (WAP) for instance. (In the usual arrangement, the server is a WAP server, which functions as an interface between conventional web servers and WAP-based clients, i.e., mobile stations. In this regard, the WAP server may receive a full HTML page from a conventional web server and translate the page into an abridged form suitable for presenting on the smaller display screens found on most WAP clients, and vice versa for data provided by the mobile WAP client.)
WAP generally employs a markup language, such as WML (wireless markup language), HDML (handheld device markup language) or iMode, for transferring content. These markup languages include a set of instructions for commanding a microbrowser to perform particular functions, such as displaying text, requesting user input, or sending data to the server for instance.
The markup language instructions are generally referred to as xe2x80x9ctags.xe2x80x9d Markup languages typically use a xe2x80x9ctag documentxe2x80x9d embodying a set of tags to describe the content of a screen. The microbrowser interprets the tag document and displays content on the screen of the mobile station or takes other actions accordingly.
In WML and HDML, a tag document that describes the layout of a single screen is typically referred to as a xe2x80x9ccard,xe2x80x9d and a tag document (or set of documents) that describes the layout of multiple screens is typically referred to as a xe2x80x9cdeck of cards.xe2x80x9d A user navigates in the microbrowser environment, i.e., the screens, by moving through one or more cards.
Microbrowsers commonly display three types of cards, which may be referred to generically as text-cards, entry-cards, and choice-cards. A text-card is a card that displays text (or, equivalently, other characters, images or media). An entry-card also typically displays text but additionally displays a text entry segment that allows the user to enter text. A choice-card displays a list of options selectable by the user. Conventionally, the list of options may be displayed in a menu format in which each option is accompanied by a corresponding number. Thus, the user is able to select an option by pressing its corresponding number key on the keypad or by scrolling to the option and engaging a designated key (e.g., a softkey) on the mobile station keypad or other user interface.
A choice-card may be programmed so that selection of particular options will cause the microbrowser to perform a corresponding function. For example, one option may take the form of a hyperlink, which, when selected by a user, causes the microbrowser to display another designated card from a deck or to send a navigation command to the server asking the server to send a new card (e.g., one associated with another web site). Another option may, when selected, cause the microbrowser to send other designated data to the server. Still other options may, when selected, cause the microbrowser and/or mobile station to take some other action. Other examples are possible as well.
Similarly, it is possible that a text-card or other sort of card may be programmed with selectable links that are designed to cause the microbrowser to take various actions when selected. For example, a text-card may be programmed to define a function that the microbrowser should take in response to user instruction (e.g., selection of a softkey or stylus-based selection of an item on a touch-sensitive screen for instance).
The ability to engage in data sessions at mobile stations has opened up a myriad of possibilities. Mobile station users can now access a wide variety of information services from almost anywhere where mobile communications are supported. The information services can take a variety of forms, including, for instance, stock quotes, sports scores, weather reports, traffic reports, and information about locations of facilities such as restaurants, hotels and gas stations.
Some of the information services that a user might access from a data-capable mobile station may be location-based. For instance, an information service might be arranged to provide weather or traffic conditions for a particular geographic location, or to provide the street addresses of a designated type of restaurant (e.g., all pizza restaurants) in particular geographic location.
Advantageously, such location-based services may be keyed to the location of the mobile station, so that a user of the mobile station can access the information service and obtain information about the user""s present location. For instance, a web service provider might allow a user to query a data server for the addresses of all pizza restaurants located near the user""s current location. As another example, a web service provider might allow a user to request traffic conditions on major roads near the user""s current location. The data server might then send the requested location-based information to the microbrowser, and the microbrowser may cause the information to be displayed for viewing by the user.
Alternatively, the location-based service may involve having the data server take a location-based action even without providing location-based information to the mobile station for presentation to the user. For example, based on the fact that a mobile station is in a particular location, the data server might send a particular message to some other entity or take some other responsive action.
In order to facilitate such location-based services, however, a mechanism should be provided for conveying a user""s current location to a data server.
One method of providing a data server with a user""s current location is to have the user expressly enter an indication of his or her current location. This can be done in several ways. For example, through use of a microbrowser, the user may navigate through, and interact with, one or more entry or choice cards so as to provide the user""s street address or an indication of nearby landmarks such as airports for instance. The user may, for example, enter text into an entry card, or select an address through interaction with a series of choice cards.
This approach has a number of disadvantages, however. For one thing, the user may know only his or her general location, such as a state or city, which may not be specific enough to allow the server to provide useful location-specific information. Further, the text-entry facilities of most mobile stations often make it difficult for a user to enter text information such as a street address. (Techniques for doing so include the xe2x80x9ctriple tapxe2x80x9d method, by which a user presses a numeric key on a conventional telephone touch pad a number of times to type a letter displayed on the numeric key; but such methods can be burdensome in practice.) Other ways of obtaining a user""s location are available, but they typically require specific hardware or hardware modifications. For example, the wireless network could use triangularization techniques to locate the user""s mobile station. However, employing triangularization may require substantial modification of existing networks and may place substantial added demands on network resources.
As another example, each base station in the network could be made to broadcast an indication of the base station""s latitude and longitude (via a suitable beacon for instance). However, this too would require substantial modifications to some existing wireless networks. Further, many mobile stations would have to be modified or specially designed in order to be able to receive the latitude and longitude information and then pass the information to the microbrowser for transmission in turn to a data server.
As still another example, mobile stations may be provided with advanced positioning functionality, such as a location system that relies on Global Positioning System (GPS) signals. However, such positioning functionality typically adds cost and complexity to a mobile station. Therefore, it may be quite some time before most mobile stations have such functionality.
An exemplary embodiment of the present invention provides a technique for communicating a mobile station""s location to a data server in a way that leverages existing technologies and can therefore be implemented relatively efficiently. In accordance with the exemplary embodiment, when a mobile station is engaged in a data session with a data server, the mobile station may be made to place a voice call to a designated xe2x80x9cdummyxe2x80x9d number. Through use of advanced intelligent network techniques, a call processing entity (such as an MSC, WAG or session manager, for instance) may then responsively send a signaling message to a central controller, thereby providing the controller with an indication of the mobile station""s current location (e.g., cell and sector, or any other wireless coverage area defined by the network). In turn, the controller may then provide that location information to the data server or make the location information available for retrieval by the data server. Conveniently, the data server may then obtain the location information and carry out a service based on the location.
Thus, in one respect, an exemplary embodiment of the invention may take the form of a method of conveying a mobile station""s location to a node that engages in a data session with the mobile station. The method may involve embedding a voice call within the data session, so as to cause the mobile station""s location to be communicated to a call processing entity. The method may then involve communicating the location from the call processing entity to the node.
In another respect, an exemplary embodiment may take the form of a method for making a mobile station""s location available to a server, where the server is engaged in a data session with said mobile station via an air interface, and where the mobile station is able to communicate with a telecommunications network (e.g., a switching system and central controller). The method may involve the telecommunications network receiving a call origination request from the mobile station, which may be a request to initiate a call to a particular number. In response to the call origination request, the telecommunications network may then determine (e.g., extract, cross-reference, or otherwise establish) a location of the mobile station. The telecommunications network may then make that location available to the server. Once the server obtains the mobile station""s location, the server may conveniently use the location to perform a location-based service, possibly formulating one or more messages for the mobile station based on the location.
In this arrangement, the server itself might send to the mobile station a tag document or other set of instructions that indicates the number for the mobile station to call. The tag document, which may conventionally define at least one display segment that a browser application may present to a user, might include an autolocate tag. The autolocate tag, when executed, may cause the mobile station to dial the specified number. Further, the dialed number might be uniquely associated with the server (and other numbers might be uniquely associated with other such servers).
In still another respect, an exemplary embodiment of the invention may take the form of a system for communicating a mobile station""s location to a node with which the mobile station engages in a data session (e.g., before and/or during the data session). The system may include (i) program instructions executable by the mobile station, and (ii) program instructions executable by a call processing entity (i.e., an entity that is involved with processing a call request).
The program instructions executable by the mobile station may include an autolocate tag and may be arranged to cause the mobile station to initiate a voice call during the data session. Upon initiation of the voice call, a message defining the location of the mobile station may be provided to the call processing entity. The program instructions executable by the call processing entity, in turn, may be arranged to cause the call processing entity to make the location of the mobile station available to the node.
These as well as other aspects and advantages of the present invention will become apparent to those of ordinary skill in the art by reading the following detailed description, with appropriate reference to the accompanying drawings.